Open source app to manage and run commands on cloud servers? [closed]

Posted by Mark Theunissen on Server Fault See other posts from Server Fault or by Mark Theunissen
Published on 2012-05-15T14:53:40Z Indexed on 2012/07/10 21:18 UTC
Read the original article Hit count: 138

Filed under:
|
|

I'm creating a SaaS platform, and I need a component / library that can create, delete and store the connection details for cloud servers. It also needs to support executing shell commands on these servers and returning the response to the caller. I want a central database of servers and their configuration, plus the ability to reach out and manage the servers via SSH execution of bash scripts. I don't want something that needs agents on every server like Chef.

For example, this command is received by the hypothetical application:

CREATE USER
server = server12345
name = myuser

It's translated into the following set of actions and executed by the app, which knows how to connect to server12345, and how to create a user on that server:

$ ssh root@server12345
$ adduser myuser

And returns the output from the shell:

Added user myuser.

I've done research on Google and can't quite quite find something that does this already. I've found:

fabric

This part handles the executing of the shell commands very elegantly, and can take multiple server definitions, but it's supposed to be a deployment tool so doesn't do everything that would be required above - for example, it doesn't have a daemon mode where it listens for commands - it expects to be executed on the shell. It also can't provide the central database functionality.

libcloud

This library can handle the server admin (CRUD) part, but doesn't have a command interface daemon either, and doesn't let you execute commands on the servers.

I guess I need something that is a combination of libcloud, fabric and django for an API. Or something else that does that same thing regardless of language.

Overmind

Overmind is a GUI and wrapper around libcloud, but doesn't support the command execution part.

What am I missing here?

© Server Fault or respective owner

Related posts about Cloud

Related posts about automation